<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>
    <h3>抽象 和 具体</h3>
    <h3>汽车: </h3>
    <h3>设计稿的车: 轮子 , 方向盘 , 灯 (抽象的汽车) 模型  </h3>
    <h3>实际的车: 楼下的停的汽车 (具体的汽车) 生产完成的汽车  实例对象 </h3>

    <h3>模型 ---- >  构造函数 ----> (抽象的)</h3>
    <h3>生产完成的汽车 ---- > 实例对象 ----> (具体的)</h3>




    <script>
        // 抽象: 概念性(设计过程中)
        // 具体: 实际性(可以使用的)

        // 构造函数: 由new操作符来调用的函数,就是构造函数
        // 如果不使用new操作符调用的函数,就是个普通函数; 想要一个对象,需要return 对象
        function foo(){ var  obj = {} ;   return obj;}
        var o1 = foo();
        console.log(o1);// 具体的对象
        // 如果使用了new操作符调用的函数,就是构造函数; 系统内部会自动返回一个对象
        // new 操作符 ; 实际操作: 创建一个空对象(obj),最后返回这个对象(obj)
        // Array Object  函数名称首字母大写
        function Foo2(){}// 抽象的对象
        var o2 = new Foo2();
        console.log(o2);// 具体的对象(实例对象)

    





    </script>
</body>
</html>